Abhishek Dujari's profile

Cluster based loosely coupled image hosting with nginx

3ezy.net was a weekend project to build a fast no spam free image hosting service using lowest cost possible that I can afford to run it from my pocket. Also with minimal footprint just to show that I dont really need the cloud.

It supports multiple upload servers with DNS load balancing. Something I once implemented for a company I worked for. Very easy to do.

The image upload is dynamic but loosely coupled so that we can have any number of upload sites (load balanaced with DNS 33%,66%) and they can intelligently decide to distribute files to any number of Content servers. All content servers are static web servers hosted with nginx compiled on CentOS without async support (centos doesn't support this feature and I just prefer centos). Currently load test shows that a single commodity server can server 8000+ requests per second. Far higher than 200+ requests per second from a vanilla Apache2 

All images are hosted LOSSLESS with pictures delivered using zero server side code execution using client script logic to decipher server name and file name from encoding and single html page only. Very easy to deploy.

time taken to code: 5 days
time to deploy: 3 days (including DNS and updating mutiple servers then configuring basic firewall rules manually on all servers)
lines of code: 500 approximately
online since september 2009.
servers in use : 5 (1 shared hosting upload site, one VPS upload site and 3 dedicated for content servers)

Currently hosting unknown number of images (definitely higher than 100,000)

Operating cost: approx 200 Euros per month
Cluster based loosely coupled image hosting with nginx
Published:

Cluster based loosely coupled image hosting with nginx

3ezy.net was a weekend project to make the fastest image hosting with lowest cost possible. written in 500 lines of code it supports Lossless ima Read More

Published: